package com.meta.platform.area.repository;



import com.meta.platform.area.domain.Areas;
import com.meta.platform.area.io.Province;
import com.meta.platform.area.req.ro.AreasRo;

import java.util.List;
import java.util.Map;

/**
 * 地区信息
 * 
 * @author M.simple
 * @email 1111111111111@qq.com
 * @date 2020-07-14 18:05:05
 */
public interface AreasRepository {

	/**
	 * insert Areas info
	 * @method      insertAreas
	 * @param       areas:
	 * @return      void
	 * @author      M.simple
	 * @date        2020-07-14 18:05:05
	 */
	void insertAreas(Areas areas);

	/**
	 * batch insert Areas info
	 * @method      insertAreas
	 * @param       areasses:
	 * @return      void
	 * @author      M.simple
	 * @date        2020-07-14 18:05:05
	 */
	void batchInsertAreas(List<Areas> areasses);

	/**
	 * update Areas info
	 * @method      updateAreas
	 * @param       areas:
	 * @return      int
	 * @author      M.simple
	 * @date        2020-07-14 18:05:05
	 */
	int updateAreas(Areas areas);

	/**
	 * update Areas info By pk
	 * @method      updateAreasByPk
	 * @param       areas:
	 * @return      int
	 * @author      M.simple
	 * @date        2020-07-14 18:05:05
	 */
	int updateAreasByPk(Areas areas);

	/**
	 * list Areas info
	 * @method      listAreas
	 * @param       areasRo:
	 * @return      List<Areas>
	 * @author      M.simple
	 * @date        2020-07-14 18:05:05
	 */
	List<Areas> listAreas(AreasRo areasRo);

	/**
	 * list Areas info
	 * @param areasRo:
	 * @return List<Areas>
	 * @method listAreas
	 * @author M.simple
	 * @date 2020-07-14 18:05:05
	 */
	List<Areas> listEffectiveAreas(AreasRo areasRo);

	/**
	 * get province Id
	 * @method      geAreas
	 * @param       areaId:
	 * @return      Areas
	 * @author      M.simple
	 * @date        2020/7/31 2:14 下午
	 * @version     v2.0
	 */
	Areas getAreas(Long areaId);

	List<Long> queryFullAreaId(Long areaId);

	List<Areas> queryAllArea();

	void insertAreaExpa(List<Map<String, Object>> areaMapList);

	List<Province> queryAddress();
}
